﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Libreria.SIG.Negocio;
using Libreria.SIG.Modelo;

public partial class ConsultaDeRecetas : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Session["cs"] = ConfigurationManager.ConnectionStrings["SIG"].ConnectionString;
    }
    protected void LinkButtonAddNew_Click(object sender, EventArgs e)
    {
        FormViewReceta.ChangeMode(FormViewMode.Insert);
        FormViewReceta.Visible = true;
    }
    protected void InsertCancelButton_Click(object sender, EventArgs e)
    {
        limpiarFormulario();
    }
    private void limpiarFormulario()
    {
        FormViewReceta.Controls.Clear();
        FormViewReceta.Visible = false;
    }
    protected void FormViewReceta_ItemInserted(object sender, FormViewInsertedEventArgs e)
    {
        limpiarFormulario();
    }

    protected void FormViewReceta_ItemInserting(object sender, FormViewInsertEventArgs e)
    {
        e.Values["TipoReceta"] = ((DropDownList)FormViewReceta.FindControl("DropDownListTipoDeReceta")).SelectedValue;
        e.Values["Foto"] = ConfigurationManager.AppSettings["RutaFotoReceta"];
    }

    protected void FormViewReceta_ItemUpdating(object sender, FormViewUpdateEventArgs e)
    {
        e.NewValues["Foto"] = ConfigurationManager.AppSettings["RutaFotoReceta"];
    }

    protected void GridViewRecetas_SelectedIndexChanged(object sender, EventArgs e)
    {

        FormViewReceta.ChangeMode(FormViewMode.ReadOnly);
        FormViewReceta.Visible = true;
    }

    protected void FormViewReceta_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
    {
        limpiarFormulario();
    }

    private void cargarArchivo(FileUpload archivo, String nombre)
    {
        if (archivo.PostedFile != null && archivo.PostedFile.ContentLength > 0)
        {
            if (archivo.PostedFile.ContentType.ToLower().EndsWith("image/jpeg") || archivo.PostedFile.ContentType.ToLower().EndsWith("image/png"))
            {
                try
                {
                    if (archivo.PostedFile.ContentLength <= 100000)
                    {
                        String ruta = ConfigurationManager.AppSettings["RutaFotoReceta"];
                        String rutaArchivo = Server.MapPath(ruta) + nombre;
                        System.Drawing.Image foto = System.Drawing.Image.FromStream(archivo.PostedFile.InputStream);
                        Int32 anchoImg = foto.Width;
                        Int32 altoImg = foto.Height;
                        if (anchoImg > altoImg)
                        {
                            Int32 anchoAnt = anchoImg;
                            anchoImg = 200;
                            Double porcentaje = anchoImg * 100 / anchoAnt;
                            altoImg = (Int32)(altoImg * porcentaje / 100);
                        }
                        else
                        {
                            Int32 altoAnt = altoImg;
                            altoImg = 200;
                            Double porcentaje = altoImg * 100 / altoAnt;
                            anchoImg = (Int32)(anchoImg * porcentaje / 100);
                        }
                        foto = foto.GetThumbnailImage(anchoImg, altoImg, null, IntPtr.Zero);
                        if (System.IO.File.Exists(rutaArchivo))
                        {
                            System.IO.File.Delete(rutaArchivo);
                        }
                        foto.Save(rutaArchivo);

                    }
                }
                catch (Exception)
                {
                }
            }
        }
    }
    protected void GridViewRecetas_RowDeleted(object sender, GridViewDeletedEventArgs e)
    {
        limpiarFormulario();
    }




    protected void InsertButton_Click(object sender, EventArgs e)
    {
        FormViewReceta.ChangeMode(FormViewMode.Edit);
    }
    protected void ObjectDataSourceRecetaDetalle_Inserted(object sender, ObjectDataSourceStatusEventArgs e)
    {
        if (e.ReturnValue != null)
        {
            cargarArchivo((FileUpload)FormViewReceta.FindControl("FileUploadFoto"), e.ReturnValue.ToString());
        }
    }
    protected void ObjectDataSourceRecetaDetalle_Updated(object sender, ObjectDataSourceStatusEventArgs e)
    {
        cargarArchivo((FileUpload)FormViewReceta.FindControl("FileUploadFoto"), e.ReturnValue.ToString());
    }
    protected void ObjectDataSourceRecetas_Deleted(object sender, ObjectDataSourceStatusEventArgs e)
    {
        String ruta = ConfigurationManager.AppSettings["RutaFotoReceta"];
        String rutaArchivo = Server.MapPath(ruta) + @"\" + e.ReturnValue.ToString();
        System.IO.File.Delete(rutaArchivo);
    }

    protected void GridViewIngredientesDeReceta_RowDataBound(object sender, GridViewRowEventArgs e)
    {

    }
    protected void GridViewIngredientesDeReceta_RowCreated(object sender, GridViewRowEventArgs e)
    {
        Session["tipoAsoc"] = null;
        Session["codigoAsoc"] = null;
        if (e.Row.DataItem != null)
        {
            Session["tipoAsoc"] = ((IngredientesDeReceta)e.Row.DataItem).TipoDeAsociacion;
            Session["codigoAsoc"] = 0;
        }
    }
    protected void ObjectDataSourceIngredientesDeReceta_DataBinding(object sender, EventArgs e)
    {
        
    }
    protected void ObjectDataSourceRecetaNegocio_DataBinding(object sender, EventArgs e)
    {

    }
}
